package org.microframework.base.model.system.dto;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 安全用户模型
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SecurityUser implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     */
    private String userId;
    
    /**
     * 用户名
     */
    private String username;
    
    /**
     * 密码
     */
    private String password;
    
    /**
     * 用户昵称
     */
    private String nickname;
    
    /**
     * 用户邮箱
     */
    private String email;
    
    /**
     * 手机号码
     */
    private String mobile;
    
    /**
     * 账号是否未过期
     */
    private boolean accountNonExpired;
    
    /**
     * 账号是否未锁定
     */
    private boolean accountNonLocked;
    
    /**
     * 凭证是否未过期
     */
    private boolean credentialsNonExpired;
    
    /**
     * 账号是否启用
     */
    private boolean enabled;
    
    /**
     * 权限列表
     */
    private Collection<?> authorities;
    
    /**
     * 权限标识
     */
    private List<String> permissions;
} 